// c++拷贝构造函数与赋值操作符函数的区别
#include <iostream>
using namespace std;

class A
{
public:
    int x;
    A(int x = 0){this->x = x;}

    //拷贝构造函数
    A(const A &rh)
    {
        cout << "拷贝构造" << endl;
        this->x = rh.x;
    }

    //赋值操作符函数
    const A &operator=(const A &rh)
    {
        cout << "赋值操作" << endl;
        this->x = rh.x;
        return *this;
    }
};

int main()
{
    A a(1);

    A x(a);     //拷贝构造
    A y = a;    //拷贝构造

    A z;
    z = a;  //赋值操作

    return 0;
}